package com.nd.qa.shareplate.IDao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import com.nd.qa.shareplate.model.SharePage;


public interface SharePageMapper {

	/**
	 * 添加page
	 * @param page
	 * @return
	 */
	public void insertPageInfo(SharePage page);
	/**
	 * 修改page
	 * @param page
	 * @return
	 */
	public Map<String, Object> updatePageInfo(SharePage page);
	/**
	 * 修改page信息
	 * @param page
	 * @return
	 */
	public Integer updatePage(SharePage page);;
	/**
	 * 删除page
	 */
	public void deletePageInfo();
	/**
	 * 查询模块下所有的page
	 * @return
	 */
	public List<HashMap<String, Object>> queryPageList(Integer moduleId);
	/**
	 * 查询页面信息
	 * @param page
	 * @return
	 */
	public HashMap<String, Object> queryPageInfo(SharePage page);
	/**
	 * 查询所有的子页面
	 * @param page
	 * @return
	 */
	public List<HashMap<String, Object>> queryChildPageList(SharePage page);
	/**
	 * 删除所有的子页面
	 * @param page
	 * @return
	 */
	public void deleteChildPages(SharePage page);
	/**
	 * 修改页面名称
	 * @param page
	 * @return
	 */
	public void modifyPage(SharePage page);
	/**
	 * 查询页面深度
	 */
	public Integer queryDepthForId(int pageId);
	/**
	 * 查询模块最大深度值
	 */
	public Integer queryMaxDepth(int moduleId);
	/**
	 * 查询深度一样的页面
	 */
	public List<SharePage> queryPagesForDepth(@Param("moduleId")int moduleId, @Param("depth")int depth);
	/**
	 * 查询页面信息
	 */
	public SharePage queryPageById(int pageId);
	/**
	 * 查询模板页面信息
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public SharePage queryTemplatePage(SharePage page) throws Exception;
	/**
	 * 查询模板页面下的子页面
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public List<SharePage> queryChildPages(SharePage page) throws Exception;
	/**
	 * 查询新增页面序列id
	 * @param seqName
	 * @return
	 * @throws Exception
	 */
	public Integer queryPageSeqByName(String seqName) throws Exception;
	/**
	 * 修改页面信息
	 * @param page
	 * @throws Exception
	 */
	public void updateTargetPageInfo(SharePage page) throws Exception;
	/**
	 * 根据元素Id,查询页面信息
	 * @param elementId
	 * @throws Exception
	 */
	public SharePage queryPageByElementId(Integer elementId) throws Exception;
	/**
	 * 查询子页面信息
	 * @param page
	 * @throws Exception
	 */
	public List<SharePage> queryChildPageForId(SharePage page) throws Exception;
	/**
	 * 修改子页面层级关系
	 * @param page
	 * @throws Exception
	 */
	public Integer updateChildPage(SharePage page) throws Exception;
	/**
	 * 查询页面信息
	 * @param page
	 * @throws Exception
	 */
	public List<SharePage> queryPagesById(SharePage page) throws Exception;
}
